package com.netscenery.yang;

/**
 * @author yanzi
 *
 */
public enum YangKeyword {
	/*
	 *    anyxml-keyword      = 'anyxml'
   argument-keyword    = 'argument'
   augment-keyword     = 'augment'
   base-keyword        = 'base'
   belongs-to-keyword  = 'belongs-to'
   bit-keyword         = 'bit'
   case-keyword        = 'case'
   choice-keyword      = 'choice'
   config-keyword      = 'config'
   contact-keyword     = 'contact'
   container-keyword   = 'container'
   default-keyword     = 'default'
   description-keyword = 'description'
   enum-keyword        = 'enum'
   error-app-tag-keyword = 'error-app-tag'
   error-message-keyword = 'error-message'
   extension-keyword   = 'extension'
   deviation-keyword   = 'deviation'
   deviate-keyword     = 'deviate'
   feature-keyword     = 'feature'
   fraction-digits-keyword = 'fraction-digits'
   grouping-keyword    = 'grouping'
   identity-keyword    = 'identity'
   if-feature-keyword  = 'if-feature'
   import-keyword      = 'import'
   include-keyword     = 'include'
   input-keyword       = 'input'
   key-keyword         = 'key'
   leaf-keyword        = 'leaf'
   leaf-list-keyword   = 'leaf-list'
   length-keyword      = 'length'
   list-keyword        = 'list'
   mandatory-keyword   = 'mandatory'
   max-elements-keyword = 'max-elements'
   min-elements-keyword = 'min-elements'
   module-keyword      = 'module'
   must-keyword        = 'must'
   namespace-keyword   = 'namespace'
   notification-keyword= 'notification'
   ordered-by-keyword  = 'ordered-by'
   organization-keyword= 'organization'
      output-keyword      = 'output'
   path-keyword        = 'path'
   pattern-keyword     = 'pattern'
   position-keyword    = 'position'
   prefix-keyword      = 'prefix'
   presence-keyword    = 'presence'
   range-keyword       = 'range'
   reference-keyword   = 'reference'
   refine-keyword      = 'refine'
   require-instance-keyword = 'require-instance'
   revision-keyword    = 'revision'
   revision-date-keyword = 'revision-date'
   rpc-keyword         = 'rpc'
   status-keyword      = 'status'
   submodule-keyword   = 'submodule'
   type-keyword        = 'type'
   typedef-keyword     = 'typedef'
   unique-keyword      = 'unique'
   units-keyword       = 'units'
   uses-keyword        = 'uses'
   value-keyword       = 'value'
   when-keyword        = 'when'
   yang-version-keyword= 'yang-version'
   yin-element-keyword = 'yin-element'
	 */
	ANYXML("anyxml"),
	ARGUMENT("argument"),
	AUGMENT("augment"),
	BASE("base"),
	BELONGSTO("belongs-to"),
	BIT("bit"),
	CASE("case"),
	CHOICE("choice"),
	CONFIG("config"),
	CONTACT("contact"),
	CONTAINER("container"),
	DEFAULT("default"),
	DESCRIPTION("description"),
	ENUM("enum"),
	ERRORAPPTAG("error-app-tag"),
	ERRORMESSAGE("error-message"),
	EXTENSION("extension"),
	DEVIATION("deviation"),
	DEVIATE("deviate"),
	FEATURE("feature"),
	FRACTIONDIGITS("fraction-digits"),
	GROUPING("grouping"),
	IDENTITY("identity"),
	IFFEATURE("if-feature"),
	INCLUDE("include"),
	IMPORT("import"),
	INPUT("input"),
	KEY("key"),
	LEAF("leaf"),
	LEAFLIST("leaf-list"),
	LENGTH("length"),
	LIST("list"),
	MANDATORY("mandatory"),
	MAXELEMENTS("max-elements"),
	MINELEMENTS("min-elements"),
	MODULE("module"),
	MUST("must"),
	NAMESPACE("namespace"),
    NOTIFICATION("notification"),
    ORDEREDBY("ordered-by"),
    ORGANIZATION("organization"),
    OUTPUT("output"),
    PATH("path"),
    PATTERN("pattern"),
    POSITION("position"),
	PREFIX("prefix"),
	PRESENCE("presence"),
	RANGE("range"),
	REFERENCE("reference"),
    REFINE("refine"),
    REQUIREINSTANCE("require-instance"),
    REVISION("revision"),
    REVISIONDATE("revision-date"),
    RPC("rpc"),
    STATUS("status"),
	SUBMODULE("submodule"),
	TYPE("type"),
	TYPEDEF("typedef"),
	UNIQUE("unique"),
	UNITS("units"),
	USES("uses"),
	VALUE("value"),
	WHEN("when"),
	YANGVERSION("yang-version"),
	YINELEMENT("yin-element")	
	;
	
	private String keyword;
	public String getKeyword() {
		return keyword;
	}

	public boolean isKeyword(String keyword){
		YangKeyword key = YangKeyword.valueOf(keyword);
		if (null != key){
			return true;
		}
		else {
			return false;
		}
	}

	private YangKeyword(){
		
	}
	
	private YangKeyword(String keyword){
		this.keyword = keyword;
	}
	

}
